Skip to content

Trust Evaluation#465

Open
StjepanovicSrdjan wants to merge 11 commits into
a-sit-plus:developmentfrom
StjepanovicSrdjan:feature/trust-evaluation
Open

Trust Evaluation#465
StjepanovicSrdjan wants to merge 11 commits into
a-sit-plus:developmentfrom
StjepanovicSrdjan:feature/trust-evaluation

Conversation

@StjepanovicSrdjan

@StjepanovicSrdjan StjepanovicSrdjan commented Jun 16, 2026

Copy link
Copy Markdown
Contributor
  • Add TrustListService for loading LoTE regularly in the background
  • Display trust evaluation in Consent Screen and in Credentials Details View
  • coupled with Trust List validation vck#556

@StjepanovicSrdjan StjepanovicSrdjan force-pushed the feature/trust-evaluation branch from 3eb01ce to 2115232 Compare June 17, 2026 09:51
@StjepanovicSrdjan StjepanovicSrdjan marked this pull request as ready for review June 17, 2026 10:10
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@StjepanovicSrdjan StjepanovicSrdjan marked this pull request as draft June 18, 2026 07:57
@StjepanovicSrdjan StjepanovicSrdjan force-pushed the feature/trust-evaluation branch from e0b2b52 to 59c9d87 Compare June 26, 2026 11:21
@StjepanovicSrdjan StjepanovicSrdjan marked this pull request as ready for review June 26, 2026 11:23
@nodh nodh changed the title Feature/trust evaluation Trust Evaluation Jun 29, 2026
Comment thread CHANGELOG.md
* Use VC-K data classes to (de-)serialize received/emitted data
* Add support for iOS using ISO/IEC 18013-7 Annex C protocol
* Add support for issuance via the DC API based on the preliminary spec defined in https://github.com/openid/OpenID4VCI/pull/476
* Add `TrustListService` for loading LoTE regularly in the background

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs to go under 5.8.1 now

"https://acceptance.trust.tech.ec.europa.eu/lists/eudiw/wallet-providers.json",
"https://acceptance.trust.tech.ec.europa.eu/lists/eudiw/wrpac-providers.json",
"https://acceptance.trust.tech.ec.europa.eu/lists/eudiw/mdl-providers.json",
"https://trust.tech.ec.europa.eu/lists/eudiw/pub-eaa-providers.json"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"https://trust.tech.ec.europa.eu/lists/eudiw/pub-eaa-providers.json"
"https://acceptance.trust.tech.ec.europa.eu/lists/eudiw/pub-eaa-providers.json"

val ASIT_PLUS_PROVIDERS = "${PREFIX}asit_plus_providers"


fun mapUrlToKey(url: String): String? = when {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not use the URL directly?

fun TrustStatusBanner(trustState: TrustState, modifier: Modifier = Modifier) {
val (backgroundColor, contentColor, icon, text) = when (trustState) {
TrustState.TRUSTED -> listOf(
Color(0xFFE8F5E9), Color(0xFF2E7D32),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please extract to resources, particularly the strings

private val verifyJwsObject: VerifyJwsObjectFun = VerifyJwsObjectJades(),
) {
private var job: Job? = null
val scope = CoroutineScope(SupervisorJob() + Dispatchers.Default)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not use the existing sessionCoroutineScope (see CredentialValidityService)

trustLists: List<ListOfTrustedEntities>,
serviceType: String
): TrustState {
return try {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cen be converted to a expression body


val responseBody = response.bodyAsText()

val jws = JwsCompact.parse<TrustListPayload>(responseBody).getOrThrow()

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not converting directly like in https://ktor.io/docs/client-responses.html#json

verifyJwsObject(jws.first).getOrThrow()

Napier.i("Successfully validated Trust List signature from $url")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: kill those empty lines


if (validationResult.isSuccess) TrustState.TRUSTED else TrustState.UNTRUSTED
} catch (_: Exception) {
TrustState.UNTRUSTED

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't UNKNOWN be better suited here? Also we should at least log the exception so Developers can see that something went wrong

val scope = CoroutineScope(SupervisorJob() + Dispatchers.Default)
private val client = httpService.buildHttpClient()
// A-SIT trust list
val aistIssuerCert = X509Certificate.decodeFromPem(asitRootPem).getOrThrow()

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be private

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants